<template>
  <div id="app">
    <!-- 对于登录页面和错误页面，直接显示 -->
    <router-view v-if="noLayoutRoutes.includes($route.path)" />
    <!-- 对于前台页面，使用前台路由（已经在路由中设置了FrontLayout） -->
    <router-view v-else-if="isFrontRoute" />
    <!-- 对于需要后台布局的页面，使用Layout组件 -->
    <Layout v-else />
  </div>
</template>

<script setup>
import { computed } from 'vue'
import { useRoute } from 'vue-router'
import Layout from '@/components/layout/Layout.vue'

const route = useRoute()

// 不需要使用布局组件的路由路径
const noLayoutRoutes = ['/login', '/403', '/404']

// 判断是否是前台路由（/的子路由或包含front的路由）
const isFrontRoute = computed(() => {
  // 根路径是前台路由
  if (route.path === '/') return true
  
  // 以/front开头的路由
  if (route.path.startsWith('/front')) return true
  
  // 个人中心路由特殊处理，不属于前台路由
  if (route.path === '/profile') return false
  
  // 包含在根路由(/)的子路由中的路由
  const pathSegments = route.path.split('/')
  if (pathSegments.length > 1 && pathSegments[1] === '') return true
  
  return false
})
</script>

<style>
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
}

#app {
  height: 100%;
}

/* 修复Element Plus图标显示问题 */
.el-icon svg {
  height: 1em;
  width: 1em;
  vertical-align: -0.15em;
}
</style> 